package com.blog.cmrpersonalblog.dto.homepage;

import com.blog.cmrpersonalblog.common.BasePageRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 用户端首页查询请求DTO
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class HomePageQueryRequest extends BasePageRequest {

    /**
     * 构造函数，设置默认排序
     */
    public HomePageQueryRequest() {
        super();
        // 不设置默认排序，由sortType控制
    }

    /**
     * 分类ID（可选，用于按分类筛选文章）
     */
    private Long categoryId;

    /**
     * 标签名称（可选，用于按标签筛选文章）
     * @deprecated 建议使用 tagIds 字段进行精确查询
     */
    @Deprecated
    private String tagName;

    /**
     * 标签ID列表（可选，用于按标签精确筛选文章）
     */
    private java.util.List<Long> tagIds;

    /**
     * 关键词搜索（可选，搜索标题和摘要）
     */
    private String keyword;

    /**
     * 排序类型
     * - latest: 最新发布（默认）
     * - hot: 热门（按浏览量）
     * - liked: 最多点赞
     * - commented: 最多评论
     */
    private String sortType = "latest";

    /**
     * 是否只显示置顶文章
     */
    private Boolean onlyTop = false;

    /**
     * 是否只显示原创文章
     */
    private Boolean onlyOriginal = false;


}
